package kioschool.view.controlsimpl
{

	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	import kioschool.controller.PrimaryController;
	import kioschool.view.layout.ComponentLayout;
	import kioschool.view.layout.ILayoutable;

	/**
	 * Представление панели смены режимов, предоставляемое по умолчанию
	 * @author Akimushkin Vasiliy
	 */ 
	[Embed(source="../../../../lib/Interface.swf#RegimePanel")]
	public class DefaultRegimePanelView extends Sprite implements ILayoutable
	{
		/**
		 * Фон - транскодинг 
		 */
		public var bg_mc:MovieClip;
		
		/**
		 * Панель с кнопками - транскодинг 
		 */
		public var panel_mc:MovieClip;
		
		/**
		 * Прошлая выделенная кнопка
		 */ 
		private var lastSelectedButton:SimpleButton;
		
		/**
		 * Необходим для сохранения объекта отображения нормального состояния
		 */
		private var savedUpState:DisplayObject;
		
		/**
		 * Необходим для сохранения объекта отображения нормального состояния
		 */
		private var savedOverState:DisplayObject;
		
		/**
		 * Менеджер компоновки
		 */ 
		private var layout:ComponentLayout;
		
		/**
		 * Конструктор, настраивает менеджер компоновки
		 */ 
		public function DefaultRegimePanelView()
		{
			layout = new ComponentLayout(this);
			layout.addComponent(bg_mc, "bg", "0;0;root.width;root.height");
			var initWidth:int = panel_mc.width;
			var initHeight:int = panel_mc.height;
			var initY:int = panel_mc.y;
			
			layout.addComponent(panel_mc, "panel", "(root.width-"+initWidth+")/2r;"+initY+";"+initWidth+";"+initHeight+"");
		}
		
		/**
		 * Выделяет кнопку режима и снимает выделение с предыдущей
		 */ 
		public function selectButton(button:SimpleButton):void{
			//восстанавливаем прошлую нажатую кнопку
			if(lastSelectedButton!=null){
				lastSelectedButton.enabled=true;
				lastSelectedButton.mouseEnabled=true;
				lastSelectedButton.upState = savedUpState;
				lastSelectedButton.overState = savedOverState;
			}
			button.enabled = false;
			button.mouseEnabled = false;
			//cunning hack:) - необходим для изменения отображения кнопки - всегда нажата
			savedUpState = button.upState;
			savedOverState = button.overState;
			button.upState = button.downState;
			button.overState = button.downState;
			lastSelectedButton=button;
		}
		
		public function getLayout():ComponentLayout{
			return layout;
		}
	}
}